package com.suning.sawp.intf.util;

import java.io.File;
import java.io.InputStream;

import com.suning.sawp.po.util.OSSFileResult;

/**
 * 
 * 〈一句话功能简述〉OSS文件上传<br>
 * 〈功能详细描述〉
 *
 * @author 17033093
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
public interface OSSFileService {

    /**
     * 
     * 功能描述: 以文件的形式上传文件到OSS<br>
     * 〈功能详细描述〉
     *
     * @param bucketName 若为空，默认是导出bucketName
     * @param objectName 文件名称
     * @param file
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    OSSFileResult upload2OSSByFile(String bucketName, String objectName, File file);
    
    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param bucketName
     * @param objectName
     * @param file
     * @param cycleTime 有效期，单位天(1-365)
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public OSSFileResult upload2OSSByFile(String bucketName, String objectName, File file, String cycleTime);

    /**
     * 
     * 功能描述: 以流形式上传文件到OSS<br>
     * 〈功能详细描述〉
     *
     * @param bucketName
     * @param objectName
     * @param mimeType
     * @param in
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    OSSFileResult upload2OSSByStream(String bucketName, String objectName, String mimeType, InputStream in);
}
